home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 2.iso / dist / fw_gdk-pixbuf.idb / usr / freeware / include / gdk-pixbuf-1.0 / gdk-pixbuf / gdk-pixbuf-xlibrgb.h.z / gdk-pixbuf-xlibrgb.h
C/C++ Source or Header  |  2002-07-08  |  5KB  |  196 lines

  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Mozilla Public License
  4.  * Version 1.1 (the "MPL"); you may not use this file except in
  5.  * compliance with the MPL.  You may obtain a copy of the MPL at
  6.  * http://www.mozilla.org/MPL/
  7.  *
  8.  * Software distributed under the MPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the MPL
  10.  * for the specific language governing rights and limitations under the
  11.  * MPL.
  12.  *
  13.  * Alternatively, the contents of this file may be used under the
  14.  * terms of the GNU Library General Public License (the "LGPL"), in
  15.  * which case the provisions of the LGPL are applicable instead of
  16.  * those above.  If you wish to allow use of your version of this file
  17.  * only under the terms of the LGPL and not to allow others to use
  18.  * your version of this file under the MPL, indicate your decision by
  19.  * deleting the provisions above and replace them with the notice and
  20.  * other provisions required by the LGPL.  If you do not delete the
  21.  * provisions above, a recipient may use your version of this file
  22.  * under either the MPL or the LGPL.
  23.  */
  24.  
  25. /*
  26.  * This code is derived from GdkRgb.
  27.  * For more information on GdkRgb, see http://www.levien.com/gdkrgb/
  28.  * Raph Levien <raph@acm.org>
  29.  */
  30.  
  31. /* Ported by Christopher Blizzard to Xlib.  With permission from the
  32.  * original authors of this file, the contents of this file are also
  33.  * redistributable under the terms of the Mozilla Public license.  For
  34.  * information about the Mozilla Public License, please see the
  35.  * license information at http://www.mozilla.org/MPL/
  36.  */
  37.  
  38. /* This code is copyright the following authors:
  39.  * Raph Levien          <raph@acm.org>
  40.  * Manish Singh         <manish@gtk.org>
  41.  * Tim Janik            <timj@gtk.org>
  42.  * Peter Mattis         <petm@xcf.berkeley.edu>
  43.  * Spencer Kimball      <spencer@xcf.berkeley.edu>
  44.  * Josh MacDonald       <jmacd@xcf.berkeley.edu>
  45.  * Christopher Blizzard <blizzard@redhat.com>
  46.  * Owen Taylor          <otaylor@redhat.com>
  47.  * Shawn T. Amundson    <amundson@gtk.org>
  48. */
  49.  
  50.  
  51. #ifndef __XLIB_RGB_H__
  52. #define __XLIB_RGB_H__
  53.  
  54. #ifdef __cplusplus
  55. extern "C" {
  56. #endif /* __cplusplus */
  57.  
  58. #include <X11/Xlib.h>
  59. #include <X11/Xutil.h>
  60. #include <X11/Xos.h>
  61. #include <X11/Intrinsic.h>
  62.  
  63. #include <glib.h>
  64.  
  65. typedef struct _XlibRgbCmap XlibRgbCmap;
  66.  
  67. struct _XlibRgbCmap {
  68.   unsigned int colors[256];
  69.   unsigned char lut[256]; /* for 8-bit modes */
  70. };
  71.  
  72. void
  73. xlib_rgb_init (Display *display, Screen *screen);
  74. void
  75. xlib_rgb_init_with_depth (Display *display, Screen *screen, int prefDepth);
  76.  
  77. unsigned long
  78. xlib_rgb_xpixel_from_rgb (guint32 rgb);
  79.  
  80. void
  81. xlib_rgb_gc_set_foreground (GC gc, guint32 rgb);
  82.  
  83. void
  84. xlib_rgb_gc_set_background (GC gc, guint32 rgb);
  85.  
  86. typedef enum
  87. {
  88.   XLIB_RGB_DITHER_NONE,
  89.   XLIB_RGB_DITHER_NORMAL,
  90.   XLIB_RGB_DITHER_MAX
  91. } XlibRgbDither;
  92.  
  93. void
  94. xlib_draw_rgb_image (Drawable drawable,
  95.              GC gc,
  96.              int x,
  97.              int y,
  98.              int width,
  99.              int height,
  100.              XlibRgbDither dith,
  101.              unsigned char *rgb_buf,
  102.              int rowstride);
  103.  
  104. void
  105. xlib_draw_rgb_image_dithalign (Drawable drawable,
  106.                    GC gc,
  107.                    int x,
  108.                    int y,
  109.                    int width,
  110.                    int height,
  111.                    XlibRgbDither dith,
  112.                    unsigned char *rgb_buf,
  113.                    int rowstride,
  114.                    int xdith,
  115.                    int ydith);
  116.  
  117. void
  118. xlib_draw_rgb_32_image (Drawable drawable,
  119.             GC gc,
  120.             int x,
  121.             int y,
  122.             int width,
  123.             int height,
  124.             XlibRgbDither dith,
  125.             unsigned char *buf,
  126.             int rowstride);
  127.  
  128. void
  129. xlib_draw_gray_image (Drawable drawable,
  130.               GC gc,
  131.               int x,
  132.               int y,
  133.               int width,
  134.               int height,
  135.               XlibRgbDither dith,
  136.               unsigned char *buf,
  137.               int rowstride);
  138.  
  139. XlibRgbCmap *
  140. xlib_rgb_cmap_new (guint32 *colors, int n_colors);
  141.  
  142. void
  143. xlib_rgb_cmap_free (XlibRgbCmap *cmap);
  144.  
  145. void
  146. xlib_draw_indexed_image (Drawable drawable,
  147.                          GC gc,
  148.                          int x,
  149.                          int y,
  150.                          int width,
  151.                          int height,
  152.                          XlibRgbDither dith,
  153.                          unsigned char *buf,
  154.                          int rowstride,
  155.                          XlibRgbCmap *cmap);
  156.  
  157. /* Below are some functions which are primarily useful for debugging
  158.    and experimentation. */
  159. Bool
  160. xlib_rgb_ditherable (void);
  161.  
  162. void
  163. xlib_rgb_set_verbose (Bool verbose);
  164.  
  165. /* experimental colormap stuff */
  166. void
  167. xlib_rgb_set_install (Bool install);
  168.  
  169. void
  170. xlib_rgb_set_min_colors (int min_colors);
  171.  
  172. Colormap
  173. xlib_rgb_get_cmap (void);
  174.  
  175. Visual *
  176. xlib_rgb_get_visual (void);
  177.  
  178. XVisualInfo *
  179. xlib_rgb_get_visual_info (void);
  180.  
  181. int
  182. xlib_rgb_get_depth (void);
  183.  
  184. Display *
  185. xlib_rgb_get_display (void);
  186.  
  187. Screen *
  188. xlib_rgb_get_screen (void);
  189.  
  190. #ifdef __cplusplus
  191. }
  192. #endif /* __cplusplus */
  193.  
  194.  
  195. #endif /* __XLIB_RGB_H__ */
  196.